#!/bin/bash
# 使用 h 复制到 保留空间,然后使用g从保留空间复制会模式空间
echo -e "\e[032m使用h,g替换第二行和第五行数据\e[0m"
sed '2h;5g' test_h.txt

echo -e "\e[032m使用h,G替换将第二行附加到第五行\e[0m"
sed '2h;5G' test_h.txt

echo -e "\e[032mx互换保留和模式区域\e[0m"
echo -e "\e[032m使用x将第二行->第三行;第三行->第四行;第四->第五;\e[0m"
sed '2h;3x;4x;5x' test_h.txt

echo -e "\e[032mH copy模式到保留区"
echo -e "\e[032m使用H赋值234到第五行后面;\e[0m"
sed '2H;3H;4H;5G' test_h.txt

echo -e "\e[032m使用n读取下一行并删除,达到删除偶数行的目的\e[0m"
sed 'n;d' test_h.txt

echo -e "\e[32m 使用s/old/new/替换数据\e[0m"
sed 's/l/ll/g' test_h.txt

echo -e "\e[32m 也可以使用y/c/c/来替换数据\e[0m"
echo -e "\e[032msed 'y/ho/gm/' test_h.txt\e[0m"
sed 'y/ho/gm/' test_h.txt

echo -e "\e[032m 使用b 和 : 定义lable 控制指令顺序\e[0m"
echo -e "\e[32m sed -n '2b label;=;:label;p' test_h.txt 第二行不打印行号\e[0m"
echo -e "\e[32m第二行的时候跳转到label,不执行=操作\e[0m"
sed -n '2b label;=;:label;p' test_h.txt

echo -e "\e[032m 使用n 和 label 来 控制第一个替换; sed -n '/hello/{s/hello/nihao/g;:label;n;b label' test_h.txt\e[0m"
sed  '/hello/{s/hello/nihao/g;:label;n;b label}' test_h.txt
